home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / visulztn / lise / minilise.lha / minilise / strings.h < prev    next >
Text File  |  1993-03-30  |  2KB  |  122 lines

  1. /* -------------------------------------------
  2.    return position of a substring in a string
  3.    ------------------------------------------- */
  4. instr(substr,str)
  5. char  str[],substr[];
  6. {
  7. int i,p,flg,l1,l2;
  8.  
  9.    l1=strlen(str); l2=strlen(substr);
  10.    for(p=0; p < l1; p++) {
  11.       flg=0;
  12.       for(i=0; i < l2; i++) {
  13.          if(str[p+i] != substr[i]) {
  14.             flg = -1; break;
  15.          }
  16.       }
  17.       if(flg == 0) return(p);
  18.    }
  19.    return(-1);
  20. }
  21.  
  22.  
  23. /* -------------------------------------------------
  24.    return a substring from within a mainstring
  25.    ------------------------------------------------- */
  26. midstr(substr,str,ss,es)
  27. char  substr[],str[];
  28. int ss,es;
  29. {
  30. int i,j;
  31.  
  32.    i=0;
  33.    for(j=ss; j <= es; j++) substr[i++]=str[j];
  34.    substr[i]=0;
  35.    return(0);
  36. }
  37.  
  38.  
  39. /* ---------------------------------------------------
  40.    return right hand end of a string
  41.    --------------------------------------------------- */
  42. rightstr(substr,str,ss)
  43. char  substr[],str[];
  44. int ss;
  45. {
  46. int l;
  47.  
  48.    l=strlen(str); midstr(substr,str,ss,l-1);
  49.    return(0);
  50. }
  51.  
  52.  
  53. /* -----------------------------------------------------
  54.    return left hand side of a string
  55.    ----------------------------------------------------- */
  56. leftstr(substr,str,es)
  57. char  substr[],str[];
  58. int es;
  59. {
  60.    midstr(substr,str,0,es);
  61.    return(0);
  62. }
  63.  
  64.  
  65. /* -------------------------------------------------------
  66.    adjust string to the left, removing spaces
  67.    ------------------------------------------------------- */
  68. left(str)
  69. char  str[];
  70. {
  71. int i;
  72.  
  73.    i=0;
  74.    while(str[i] == ' ') i++;
  75.    rightstr(str,str,i);
  76.    return(0);
  77. }
  78.  
  79.  
  80. /* -------------------------------------------------------
  81.    reverse a string
  82.    ------------------------------------------------------- */
  83. reverse(str)
  84. char  str[];
  85. {
  86. int l,n,i,c;
  87.  
  88.    l=strlen(str)-1, n=l/2;
  89.    for(i=0; i <=n; i++) {
  90.       c=str[l-i]; str[l-i]=str[i]; str[i]=c;
  91.    }
  92.    return(0);
  93. }
  94.  
  95.  
  96. /* ------------------------------------------------------
  97.    compare two strings equating upper and lower case
  98.    ------------------------------------------------------ */
  99. lexcmp(str1,str2)
  100. char  str1[],str2[];
  101. {
  102. char s1[256],s2[256];
  103.  
  104.    strcpy(s1,str1); strcpy(s2,str2);
  105.    strupc(s1); strupc(s2);
  106.    return(strcmp(s1,s2));
  107. }
  108.  
  109.  
  110. /* ---------------------------------------------
  111.    convert string to upper case
  112.    --------------------------------------------- */
  113. strupc(str)
  114. char  str[];
  115. {
  116. int  l,i;
  117.  
  118.    l=strlen(str);
  119.    for(i=0; i < l; i++) str[i]=toupper(str[i]);
  120.    return(0);
  121. }
  122.